package com.transmit.conf.propertis;

import com.transmit.util.UserToken;

import javax.servlet.http.HttpServletRequest;

public interface TokenManager {

    /**
     * 创建一个token关联上指定用户
     *
     * @return 生成的token
     */
    UserToken searchToken(HttpServletRequest req) throws Exception;

    /**
     * 创建一个token关联上指定用户
     *
     * @param username 指定用户
     * @return 生成的token
     */
    UserToken createToken(String username) throws Exception;

    /**
     * 检查token是否有效
     *
     * @param model token
     * @return 是否有效
     */
    boolean checkToken(UserToken model);

    /**
     * 从字符串中解析token
     *
     * @param authentication 加密后的字符串
     * @return
     */
    UserToken getToken(String authentication);

    /**
     * 清除token
     *
     * @param token 登录用户的token
     */
    void deleteToken(String token);

}